package com.bf.electroplating.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bf.electroplating.pojo.entity.SewagePlantManualDetection;
import com.bf.electroplating.pojo.vo.sewagePlantManualDetection.*;
import org.springframework.web.multipart.MultipartFile;

import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 * 污水厂预排口手工检测数据表 服务类
 * </p>
 *
 * @author gzd
 * @since 2025-09-11
 */
public interface ISewagePlantManualDetectionService extends IService<SewagePlantManualDetection> {

    /**
     * 导入污水厂预排口手工检测数据
     * @param file Excel文件
     * @return 导入结果
     */
    String importSewagePlantManualDetectionData(MultipartFile file);

    /**
     * 分页查询污水厂预排口手工检测数据
     * @param queryDTO 查询条件
     * @return 分页数据
     */
    SewagePlantManualDetectionPageVO pageList(SewagePlantManualDetectionQueryDTO queryDTO);

    /**
     * 根据ID获取详情
     * @param id 主键ID
     * @return 详情数据
     */
    SewagePlantManualDetectionVO getDetail(String id);

    /**
     * 更新污水厂预排口手工检测数据
     * @param updateDTO 更新数据
     * @return 更新结果
     */
    Boolean updateDetectionData(SewagePlantManualDetectionUpdateListDTO updateDTO);

    /**
     * 根据ID删除数据
     * @param id 主键ID
     * @return 删除结果
     */
    Boolean deleteDetectionData(String id);

    /**
     * 导出污水厂预排口手工检测数据
     * @param queryDTO 查询条件
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    void exportData(SewagePlantManualDetectionQueryDTO queryDTO, HttpServletResponse response) throws IOException;

    /**
     * 生成当月空白检测数据
     * 为当月每一天生成6条空白数据：两个污水厂各3个污水类型
     * 如果某天已存在数据，则跳过该天的生成
     * @return 生成结果
     */
    Boolean generateDailyBlankData();

    Page<SewagePlantManualDetectionVO> pageListForCompany(SewagePlantManualDetectionQueryCompanyDTO queryDTO);

}
